Aufruf der Methode in ST

Syntax
( * internal call of method of the current function block *)
THIS.method-name();|method-name();
THIS.method-name|method-name
  (input_1:=x1,input_2:=x2,...,input_n:=xn,
  output_1=>y1,output_2=>y2,...,output_n=>yn); 
 
( * internal call of a method of the base function block from within a derived function block *)
SUPER.method-name();
SUPER.method-name
  (input_1:=x1,input_2:=x2,...,input_n:=xn,
  output_1=>y1,output_2=>y2,...,output_n=>yn) 
 
( * external call of a method *)
instance-name.method-name();
instance-name.method-name
  (input_1:=x1,input_2:=x2,...,input_n:=xn,
  output_1=>y1,output_2=>y2,...,output_n=>yn);
Bedeutung

formaler Aufruf der →Methode ohne oder mit Parameterliste
Die Methode wird aufgrund de s Methodennamens method-name aufgerufen. Die Angabe vor dem Methodenname bestimmt, in welchem Kontext die Methode aufgerufen wird:

  • THIS. – Damit rufen Sie eine Methode des gleichen Sprachkonstrukts auf. Als Alternative ist es dafür auch möglich, THIS. wegzulassen.
    Beispiel: THIS.UP5(); oder UP5(); – Damit wird die Methode UP5 z.B. in der Methode UP aufgerufen. Beide Methoden sind im gleichen →Funktionsbaustein deklariert oder im Basis-Funktionsbaustein (wenn der Funktionsbaustein mit dem Aufruf der Methode ein abgeleiteter Funktionsbaustein ist; siehe Informationen zum Schlüsselwort EXTENDS unter "Deklaration eines Funktionsbausteins in ST").

  • SUPER. – Damit rufen Sie eine Methode des Basis-Funktionsbaustein in einem abgeleitetet Funktionsbaustein auf.
    Beispiel: SUPER.UP5(); – Damit wird die Methode UP5 des Basis-Funktionsbausteins aufgerufen. Der Aufruf der Methode erfolgt in einem Funktionsbaustein, der aufgrund des Schlüsselworts EXTENDS vom Basis-Funktionsbausteins abgeleitetet wurde.

  • instance-name. – Damit rufen Sie die Methode einer →Instanz auf.
    Beispiel: Inst1.UP5(); – Damit wird die Methode UP5 der Instanz Inst1 aufgerufen.

Keine Prüfung von Rekursionen

Rekursionen bei →Funktionen und →Methoden werden von Neuron Power Engineer nicht verboten oder geprüft. Erstellen Sie trotzdem keine Selbstaufrufe und vermeiden Sie einen gegenseitigen Aufruf von 2 (oder mehr) Funktionen/Methoden in Ihrer Anwendung. 
Beachten Sie, dass Rekursionen von Funktionen/Methoden in Ihrer Anwendung unerwartete Ereignisse beim Ausführen der Anwendung verursachen können. So könnte die Anwendung in einer Endlosschleife ausgeführt werden und/oder das →Laufzeitsystem reagiert nicht mehr.

(Info) Die Möglichkeiten für die Parameterliste sind analog zum Aufruf von Funktionen.

Die Parameterliste beim formalen →Aufruf kann aus folgenden Elementen bestehen:

  • →Zuweisungen auf →Eingangsvariablen (inkl. auf Eingang EN)
    Der Ausdruck auf der rechten Seite des Zuweisungsoperators ":=" in den Zuweisungen auf Eingangsvariablen darf eines jener Konstrukte sein, wie unter Zuweisung angeführt.

  • Zuweisungen auf →Ein-/Ausgangsvariablen
    Der Ausdruck auf der rechten Seite des Zuweisungsoperators ":=" in den Zuweisungen auf Ein-/Ausgangsvariablen darf nur eines jener Konstrukte sein, die auch auf der linken Seite des Zuweisungsoperators ":=" stehen könnten.

  • Zuweisungen von →Ausgangsvariablen (inkl. auf Ausgang ENO)
    Der Ausdruck auf der rechten Seite des Zuweisungsoperators "=>" in den Zuweisungen von Ausgangsvariablen darf eine deklarierte →Variable (z.B. result) des passenden →Datentyps sein.

Als Alternativen können Sie auch die folgenden Varianten beim Aufruf verwenden:

  • nicht-formaler Aufruf
    Die Parameterliste muss genau dieselbe Anzahl an Eingangsvariablen haben – in genau derselben Reihenfolge und mit passenden Datentypen, wie in der Deklaration angegeben, ausgenommen der Parameter zur Ausführungssteuerung EN und ENO
    Beispiel: Inst1.UP3 (10,20,T#3ms); – Dieser nicht-formale Aufruf ist gleichbedeutend mit diesem formalen Aufruf: Inst1.UP3 (EN := TRUE, IN1:=10, IN2 := 20, T1 := T#3ms, OUT => result);

  • unvollständige Parameterliste beim formalen Aufruf
    Sie können Eingangsvariablen und Ausgangsvariablen in der Parameterliste weglassen. Weggelassene Eingangsvariablen erhalten den Standard-→Initialisierungswert. Wie bereits erwähnt, ist dies analog zum Aufruf einer Funktion (siehe die Beispiele dort).

Im FAQ-Artikel "Wann soll ich einen formalen Aufruf verwenden? Wann einen nicht-formalen Aufruf?" finden Sie Informationen darüber, wann der formale Aufruf im Vergleich zum nicht-formalen Aufruf zu verwenden ist.

Ein Beispiel für den internen Aufruf einer Methode mit Parameterliste, aber ohne EN/ENO finden Sie unter "Deklaration einer Methode". Ein Beispiel mit den unterschiedlichen Aufrufen von Methoden (mit THIS.SUPER. und instance-name.) finden Sie unter "Deklaration eines Funktionsbausteins in ST".